iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 11
0
自我挑戰組

rails 學習紀錄系列 第 12

[Day12]Rails RESTful

  • 分享至 

  • xImage
  •  

RESTful帶給Rails最大的好處是:它幫助我們用一種比較標準化的方式來命名跟組織Controllers和Actions。
因為 CRUD 是常見的操作行為,但是大家實作的方式、與網址設計方式不一樣。造成很多維護上的困擾。
於是將每個網址當做資源(Resource)來看待,對同一個資源做不同的動作(HTTP Verb)會得到不同的結果。符合 REST 概念設計的網址,又稱之 RESTFul Route。


將RESTful帶入Rails路由系統的點子,出自它對應了HTTP動詞POST、GET、PATCH/PUT、DELETE到資料的新增、讀取、更新、刪除等四項操作。


以下例子 做出 CRUD 功能的討論版來解釋:

討論版這個功能的名稱: groups。Restful 的概念裡面叫做 resources,「一組資源」。
為了要控制它的運作,我們會創建一個新的 Controller文件 叫做 groups_controller.rb
我們在config/routes.rb加入以下一行程式:
resources :groups


    Prefix Verb   URI Pattern                Controller#Action
    groups GET    /groups(.:format)          groups#index
           POST   /groups(.:format)          groups#create
 new_group GET    /groups/new(.:format)      groups#new
edit_group GET    /groups/:id/edit(.:format) groups#edit
     group GET    /groups/:id(.:format)      groups#show
           PATCH  /groups/:id(.:format)      groups#update
           PUT    /groups/:id(.:format)      groups#update
           DELETE /groups/:id(.:format)      groups#destroy

Prefix指的是在View的Helper命名,搭配_path(相對網址,不帶有http://your_domain)或_url(絕對網址,帶有http://your_domain)結尾就可以組合出Helper方法,例如groups_path方法會產生出/groups這樣的網址。一般來說在網站的情境內都會使用相對網址,會用到絕對網址的情境則是在寄出去Email裡面的超連結。

對於網址跟對應的Action與頁面來說
/groups/ 一定就是 index,首頁,對應Routes路徑: groups_path
/groups/123 一定就是 show,名字為123的討論版個版頁面,對應Routes路徑: group_path(123)
/groups/123/edit 一定就是 edit,編輯討論版123的表單頁面,對應Routes路徑:edit_group_path(123)
/groups/new 一定就是 new,新增討論版的表單頁面,對應Routes路徑(或稱為helper):new_group_path 總結


參考資料
Rails實戰聖經
Rails102
為你自己學Ruby on Rails


上一篇
[Day11] Model 關聯 (下)
下一篇
[Rails] 後台系統可以查詢自己的文章,並做CRUD。
系列文
rails 學習紀錄14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言